@database JFIF.guide @$VER: JFIF.guide 0.1 (17.9.94) @node main "JFIF DataType Documentation - Contents" --------------------------------------------------------------------------- Tower JFIF DataTypes Class & Tower JPEG Codec Class Copyright 1994 Christoph Feck, TowerSystems All Rights Reserved. - JFIF DataType Preferences (MUI Application) Copyright 1994 Matthias Scheler All Rights Reserved. This software is based in part on the work of the Independent JPEG Group --------------------------------------------------------------------------- @{" Introduction " link Introduction} What is the JFIF datatype? @{" Requirements " link Requirements} What system do I need? @{" Installation " link Installation} Before using the datatype. @{" Configuration " link Configuration} The preferences editor. @{" Tips & Hints " link Tips} Some useful notes. @{" Known Bugs " link Bugs} What does not work? @{" History " link History} What is new in this version? @{" Acknowledgments " link Acknowledgments} Who I want to thank. @{" Disclaimer " link Disclaimer} Short: Use it at your own risk! @{" Copyright " link Copyright} About legal issues. @{" License " link License} What you have to agree on. @{" Giftware " link Giftware} A call for courage. @{" Support " link Support} About updates and support. @{" Author " link Author} Where you can reach me. @endnode @node Introduction "JFIF DataType Documentation - Introduction" Introduction ************ Starting with OS Release 3 the Amiga has the concept of `datatypes', which allow reading and viewing files of different types and formats. MultiView utilizes these datatypes and displays any file for which you have a data types class installed. Already supplied on your Workbench disk is the ILBM datatype for loading regular IFF-ILBM pictures. Using this JFIF datatype you can enhance the functionality of MultiView and other datatypes-aware applications: The Tower JFIF DataTypes Class allows you to read and view JFIF files. JFIF is the de facto standard file format for JPEG compressed images. @endnode @node Requirements "JFIF DataType Documentation - Requirements" Requirements ************ To use datatypes, you need Amiga OS Release 3. Older versions will not be sufficient. You should have 2 megabytes main memory, as well as a harddisk to store temporary files. It may or may not work on a floppy based system. A 68020 CPU is not required, but recommended; JPEG files need much time to decode. The presence (or absence) of a math coprocessor does not affect decoding time. The installation script requires the Commodore Installer utility. It is not included. One of the preferences editors needs MUI. MUI is not included. If you do not have MUI, you can still use the regular GadTools version. @endnode @node Installation "JFIF DataType Documentation - Installation" Installation ************ Please use the supplied installation script to install all files. Manual installation is disrecommended. The datatype uses the Tower JPEG Codec Class to decode (decompress) the JPEG data within the JFIF file. This codec, including codec.class, picture codec and tower.library, must be correctly installed. The installation script will do this for you. If you already have the JPEG codec installed, be sure to not overwrite newer versions with older versions. @endnode @node Configuration "JFIF DataType Documentation - Configuration" Configuration ************* The JFIF DataType Preferences Editor allows you to modify several options of the JFIF datatype. The installer copies the editor to the Prefs drawer of your system partition. When you start the editor, you will see a window with a listview on the left side, several cyclegadgets and checkbuttons on the right side, and the usual Save/Use/Cancel buttons on the bottom. The listview is used to select, edit, add, and remove the names of the applications, for which you want to control the settings. The actual name of the application is the process/task name, or the command name for Shell processes. The name will usually be the filename of the program you started. You can enter AmigaDOS patterns as the name, the first matching entry decides which settings apply. Available Options ----------------- The option gadgets on the right side of the window allow you to edit the settings. Following settings can be changed: - "Rendermode" selects the basic type of output. In conjunction with the numeric gadget you can set the number of colors you want in the picture: - For HAM mode, 16 colors will force HAM6, 64 colors will force HAM8 (even if you have no AGA chipset), and 0 means automatic selection. - For colormapped and grayscale modes, the number of colors directly affects the size of the colormap, and the bitmap's depth. If you use 0 colors in those two modes, you will get the maximum number (256). - "Scaling" (1:1, 1:2, 1:4, or 1:8) controls the size of the picture. It will also drastically reduce memory requirements and decoding time. - "Dithermode" allows you to select the type of dithering. Currently this does not affect HAM modes. - "Single-Pass Quantization" instructs the datatype to use a fixed palette, instead of choosing an optimized palette. For now, HAM modes will always use a static palette. - The "Slow ... Method" options enable slower, but higher quality modes. - "Find Best Display Mode" controls the selection of the screenmode the picture will get. If this button is not checked, a default mode is used. - The "Large Histogram" option affects the size of the histogram. The histogram is required to select an optimized color palette. If enabled, a full-sized histogram is computed. This will notably increase quality, but will also consume much more memory. If the memory is not available, a temporary file will be created on your harddisk. - The "Progress Indicator" is very useful for slower machines. It will show you a growing bar, so you can estimate the time required to finish. Additionally, you can abort the operation by closing the small window. This will not work, if the datatype is currently busy with choosing the colormap. The window will open on the same screen DOS requesters would open on. MUI versus GadTools ------------------- Depending on your selection during installation, you will either have a GadTools version, or a MagicUserInterface (MUI) version of the editor. Both are substantially the same; the remaining differences are: - The GadTools version will always display the default settings at the top of the listview, but still uses them only when no matching application is found. - In the MUI version, you can change the order of applications in the listview using the Up/Down buttons. This is useful to temporarily delete the settings of a particular application by moving it below the `Default' entry. To add a default settings entry, enter an empty name (just press Return). @endnode @node Tips "JFIF DataType Documentation - Tips & Hints" Tips & Hints ************ If you only want to display a picture, the settings should match the actual capabilities of your display hardware. For example, on an ECS Amiga it is not recommended to let the datatype return a 256 color bitmap. The color reduction in the datatypes system does not work as good as the algorithms in the JFIF datatype. You will gain both speed and quality, if you reduce the number of colors to the amount displayable by your system. This is also true for images viewed on a pen-sharing screen, such as the Workbench screen. Even if you have a 256 color Workbench, not all colors can be used by datatypes. You may end up getting nicer pictures by using e.g. 128 colors. If you intend to view multiple images on one screen, reduce the amount of colors even more. Otherwise you may be left with an unusable set of colors for the next picture. This is in particular true for Multimedia applications, where many images must be displayed on a single screen. If your screen has no sharable pens (e.g. you have a 4 color screen), you should try the grayscale mode with up to 4 grayscales. The dithering will be much nicer, compared to a 256 color or 256 grayscale image. It is highly disrecommended to use a JPEG image as a Workbench or window backdrop, or as a pattern for MUI. The decoding will probably take too long. Instead, use MultiView to save the image in IFF-ILBM format. This format can be loaded much faster. Be sure to reduce the number of colors, otherwise the backdrop may steal all free pens you have. For permanent backdrop images on a 256 colors screen, 16 or 32 colors should be enough. Datatypes decode pictures into a standard bitmap in Chip memory. If you are low on Chip memory, you should scale the picture. Most (but not all) JPEG files conform to the JFIF standard; only these can be read with the JFIF datatype. Formats such as PICT/JPEG, TIFF/JPEG, or HSI are not supported, neither are `plain' (raw) JPEG files without a JFIF marker. @endnode @node Bugs "JFIF DataType Documentation - Known Bugs" Known Bugs ********** @endnode @node History "JFIF DataType Documentation - History" History ******* Release 1, on 12-Dec-94: - If SYS:Classes didn't exists, it created the directory, which is useless, since LIBS: doesn't point to it. It now writes to LIBS: directly. - Pretend mode failed, if you had not installed the ENV settings yet. - First public release. Gamma Release, released on 23-Nov-94: - Oops... tower.library/GetString was broken, causing a full hang whenever a message needed to be displayed. - Various Installer script fixes, added reboot code. - Ignores path even for process/task names. Beta-2, released on 17-Nov-94: - Reduced stack usage in two pass quantization (shouldn't crash IPrefs anymore). - Fixed a couple of bugs in tower.library. One bug could cause the machine to crash. - BestModeID now tries to use an interlaced mode for lores HAM. - Now ignores the path when matching command names. - Fixed keyboard shortcuts in MUI version. - Fixed a bug in the datatype, which prevented it from dithering 256 colors down to an ECS screen. - Moved HAM conversion to picture.codec. - Fixed a bug in the prefs editor, which caused settings to be lost in some cases. - The JPEG codec has been recompiled using the official V5 IJG code. - Now opens the progress window on the same screen DOS requesters open on. - Added documentation, Installer script, and cleaned up the distribution. Beta-1, released on 06-Sep-94: - Initial beta release. @endnode @node Acknowledgments "JFIF DataType Documentation - Acknowledgments" Acknowledgments *************** The following people deserve to get especially mentioned in this place: - The Independent JPEG Group. I used their source to create the JPEG codec class. Even while the source is excellent, you should not use it on the Amiga; use the JPEG codec instead. For details, refer to the Copyright section. - Matthias `Tron' Scheler. He created the MUI version of the preferences editor. Originally, there was no preferences editor at all; I wrote the GadTools version only after I saw how much memory MUI needs :) Also, I must thank him for allowing me to include it in this distribution. - All my beta testers for their suggestions and bug reports. - Osma Ahvenlampi and Mark Rose for creating MagicWB style icons for the preferences editor. @endnode @node Disclaimer "JFIF DataType Documentation - Disclaimer" Disclaimer ********** Standard disclaimer: THERE IS NO WARRANTY FOR THE SOFTWARE TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHERE OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE SOFTWARE AS PERMITTED BELOW, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. @endnode @node Copyright "JFIF DataType Documentation - Copyright" Copyright ********* The Tower JFIF DataTypes Class and the Tower JPEG Codec Class are Copyright 1994 Christoph Feck, TowerSystems. All Rights Reserved. The JFIF DataTypes Preferences Editor (MUI Application) is Copyright 1994 Matthias Scheler. All Rights Reserved. Inclusion in this distribution per agreement. This archive may only be distributed in unmodified form. No files may be added, changed or removed. You may not charge for this archive, other than the cost of the media and duplication fees, as long as they don't exceed the fees taken by Fred Fish. Distribution is allowed in all forms, such as BB systems, floppy or compact disks, and ftp sites. Any inclusion in a commercial, semi-commercial or Shareware distribution requires the written permission of the author. About the JPEG codec class -------------------------- The license described in the next section only applies to the JFIF datatype archive as a whole, including the JPEG codec and all other files. For the Tower JPEG Codec Class (including needed super classes) a separate license may be obtained to distribute it together with your programs or software. This license is available for both freely distributable and commercial software. To obtain the license, you must contact the author, and ask for a license to distribute the Tower JPEG Codec Class. The codec is a shared BOOPSI class library for reading and writing JPEG files. A linkage library will not be available. Programs using the class will automatically benefit from any future improvements made to the codec. Interfacing is very easy, existing applications can be modified to utilize the class using minimal work. It is designed to process 24 bit data on a scanline base. A developer kit, including C header files, example code, and documentation, can be obtained from the author. @endnode @node License "JFIF DataType Documentation - License" License ******* These are the conditions you must agree on before and while using the JFIF datatypes class, the JPEG codec class, and all other included files: You may copy and distribute verbatim copies of the classes, programs, and documentation as you receive it, in any medium, provided that you conspicuously and appropriately publish only the original, unmodified files with all copyright notices and disclaimers of warranty intact and including all the accompanying documentation and anything else that came with the original archive. Except where otherwise stated in this documentation, you may not copy and/or distribute the classes and programs without the accompanying documentation and other additional files that came with the original. You may not copy and/or distribute modified versions of the classes and programs. You may not copy, modify, sublicense, distribute or transfer the files except as expressly provided under this license. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the files is void, and will automatically terminate your rights to use the files under this license. However, parties who have received copies, or rights to use copies, from you under this license will not have their licenses terminated so long as such parties remain in full compliance. By copying, distributing and/or using the files you indicate your acceptance of this license to do so, and all its terms and conditions. Each time you redistribute the files, the recipient automatically receives a license from the original licensor to copy, distribute and/or use the files subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You may not disassemble, decompile, re-source or otherwise reverse-engineer the classes and programs. You agree to cease distributing the files if requested to do so by the authors. @endnode @node Giftware "JFIF DataType Documentation - Giftware" Giftware ******** The creation and support of this and future software has taken (and will continue to take) a large amount of my time. I strongly encourage you to think a minute about the effort I put into this software and about the improvement it makes to your system or the joy you would miss, if I had not released it. I am pretty sure you will conclude that my work is not worthless at all, but rather deserves a small donation or gift. I decided not to `cripple' the software by any means. The Shareware market seems to get flooded rapidely with such limited programs. If I should get to notice that you enjoy my creation without even bothering to express your pleasure by sending a small amount of money, or by showing any other sign of acknowledgment, I could also see the need to release future versions or future software as Shareware, with some options disabled or crippled. Please consider the consequences this would have. Thank you. @endnode @node Support "JFIF DataType Documentation - Support" Support ******* No software is perfect. If there are any new versions available, perhaps because there is a bug fixed or a feature was added, I will announce it in the international Usenet newsgroup comp.sys.amiga.announce, and will upload it to the Aminet ftp sites. I am open to suggestions and comments. Also, if you have problems with the datatype, you can contact me to ask for help. However, you cannot expect me to do everything. You get the support for free, and I must keep an eye on my CS studies, so be patient, if you do not get a reply within a week or @endnode @node Author "JFIF DataType Documentation - Author" Author ****** To send suggestions, bug reports, comments, gifts, flames, etc., you can contact me at one of the following addresses: Christoph Feck TowerSystems Balbierstrasse 6 D-67663 Kaiserslautern Germany Email: feck@informatik.uni-kl.de IRC: Pepo (frequently on #amiga and #amigager) I will forward any mail regarding the MUI version of the preferences editor directly to Matthias Scheler. Thank you for your patience reading this! 3k// Christoph Feck, TowerSystems - BOOPSI Class Development \\X/ Amiga - Intuition inside. @endnode